#include <stdio.h>

const int maxArray=20;

void checkKz(int n,int m,int array[maxArray+1][maxArray+1],int x,int y){
    if(x<0||y<0||x>=n||y>=m)
    {
        return;
    }
    array[x][y]=0;
}

int main(){
    int n,m,x,y;
    int array[maxArray+1][maxArray+1];
    int searchArray[maxArray*maxArray][3];
    //移动方式
    int move[2][2]={{0,1},{1,0}};
    
    scanf("%d %d %d %d",&n,&m,&x,&y);
    int endx=n;
    int endy=m;
    n++;
    m++;
    int i,j;
    for(i=0;i<=n;i++)
    {
        for(j=0;j<=m;j++)
        {
            if(i==n||j==m)
            {
                array[i][j]=0;
            }
            else
            {
                array[i][j]=1;
            }
            
        }
    }
    //标记控制点
    checkKz(n,m,array,x,y);
    checkKz(n,m,array,x-1,y-1);
    checkKz(n,m,array,x-2,y-1);
    checkKz(n,m,array,x-1,y-2);
    if(x-2!=endx||y-2!=endy)
    {
        checkKz(n,m,array,x-2,y-2);
    }
    checkKz(n,m,array,x-2,y+1);
    checkKz(n,m,array,x-1,y+2);
    checkKz(n,m,array,x+2,y-1);
    checkKz(n,m,array,x+1,y-2);
    checkKz(n,m,array,x+2,y+1);
    checkKz(n,m,array,x+1,y+2);
    checkKz(n,m,array,x+1,y+1);
    if(x+2!=endx||y+2!=endy)
    {
        checkKz(n,m,array,x+2,y+2);
    }

    //标记最右边一列的状态 有个为0 这个上面所有都为0
    int flag=1;
    for(i=n-1;i>=0;i--)
    {
        if(array[i][m-1]=0)
        {
            flag=0;
        }
        array[i][m-1]=flag;
    }

    //标记最下边一行的状态 有个为0 这个左边所有都为0
    flag=1;
    for(i=m-1;i>=0;i--)
    {
        if(array[n-1][i]=0)
        {
            flag=0;
        }
        array[n-1][i]=flag;
    }

    if(array[n-1][m-1]==0)
    {
        printf("0\n");
        return 0;
    }

    int len=0;
    searchArray[0][0]=0;
    searchArray[0][1]=0;
    searchArray[0][2]=0;
    int num=0;
    while(searchArray[0][2]<=1)
    {
		int index=searchArray[len][2];
        int nextx=searchArray[len][0]+move[index][0];
        int nexty=searchArray[len][1]+move[index][1];

        if(nextx==endx&&nexty==endy)
        {
            num++;
            len--;
            searchArray[len][2]++;
        }
        else if(array[nextx][nexty]==1)
        {
            len++;
            searchArray[len][0]=nextx;
            searchArray[len][1]=nexty;
            searchArray[len][2]=0;
        }
        else{
            searchArray[len][2]++;
        }

        while(searchArray[len][2]>1)
        {
            
            len--;
            searchArray[len][2]++;
        }
        
        
    }

    printf("%d\n",num);
    return 0;
}